#pragma once

#ifndef _D2CONSTANTS_H
#define _D2CONSTANTS_H

/****************************************************************************
*                                                                           *
*   D2Constants.h                                                           *
*   Copyright (C) Olivier Verville                                          *
*                                                                           *
*   Licensed under the Apache License, Version 2.0 (the "License");         *
*   you may not use this file except in compliance with the License.        *
*   You may obtain a copy of the License at                                 *
*                                                                           *
*   http://www.apache.org/licenses/LICENSE-2.0                              *
*                                                                           *
*   Unless required by applicable law or agreed to in writing, software     *
*   distributed under the License is distributed on an "AS IS" BASIS,       *
*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.*
*   See the License for the specific language governing permissions and     *
*   limitations under the License.                                          *
*                                                                           *
*---------------------------------------------------------------------------*
*                                                                           *
*   https://github.com/olivier-verville/D2Template                          *
*                                                                           *
*   This file is meant to declare various constant data. As you add more    *
*   custom code to your library, you will be using many constant values     *
*   used by the game's internal code. Unit types are a good example.        *
*   Declaring constants allows you to assign a name to these constants      *
*   which are more convenient to use in your source code.                   *
*                                                                           *
*   Another advantage is smaller impact in cases where these values would   *
*   need to change. Rather than revising every single piece of code using   *
*   this value, you only need to change your constant's value               *
*                                                                           *
*****************************************************************************/

enum D2TypeSize { D2TS_UNITSIZE = 0x011C };

enum D2DifficultyModes { D2DM_NORMAL, D2DM_NIGHTMARE, D2DM_HELL };

enum D2PlayerClass { D2PC_AMAZON, D2PC_SORCERESS, D2PC_NECROMANCER, D2PC_PALADIN, D2PC_BARBARIAN, D2PC_DRUID, D2PC_ASSASSIN };

enum D2Color
{
	WHITE = 0,
	RED = 1,
	GREEN = 2,
	BLUE = 3,
	GOLD = 4,
	DARK_GRAY = 5,
	//	INVISIBLE=6,
	DARK_YELLOW = 7,
	ORANGE = 8,
	YELLOW = 9,
	DARKEST_GREEN = 0xA,
	PURPLE = 0xB,
	DARK_GREEN = 0xC,
	//	WHITE_BIS=0xD,
	//	INVISIBLE2=0xE,
	LIGHT_GRAY = 0xF,
	GRAY = 0x10,
	//	VERY_WIERD=0x11,
	BRIGHT_WHITE = 0x12,
	CRYSTAL_RED = 0x13,
	//	WIERD_YELLOW=0x14
};

enum D2Lang
{
	LNG_ENG = 0,// English
	LNG_ESP,// Spanish
	LNG_DEU,// German
	LNG_FRA,// French
	LNG_POR,// Portuguese
	LNG_ITA,// Italian
	LNG_JPN,// Japanese
	LNG_KOR,// Korean 
	LNG_SIN,// 
	LNG_CHI,// Chinese
	LNG_POL,// Polish
	LNG_RUS,// Russian
	LNG_DEF,// Default : English
};


enum D2GameTypeMode
{
	//	MODE_SINGLE = 0,
	MODE_CLOSED = 1,
	MODE_TCP,
	MODE_OPEN,
};

enum D2CStat
{
	STATS_STRENGTH = 0,
	STATS_ENERGY,
	STATS_DEXTERITY,
	STATS_VITALITY,
	STATS_STATPTS,
	STATS_NEWSKILLS,
	STATS_HP,
	STATS_MAXHP,
	STATS_MANA,
	STATS_MAXMANA,
	STATS_STAMINA,
	STATS_MAXSTAMINA,
	STATS_LEVEL,
	STATS_EXPERIENCE,
	STATS_GOLD,
	STATS_GOLDBANK,
	STATS_ITEM_ARMOR_PERCENT,//0x10
	STATS_ITEM_MAXDAMAGE_PERCENT,
	STATS_ITEM_MINDAMAGE_PERCENT,
	STATS_TOHIT,
	STATS_TOBLOCK,
	STATS_MINDAMAGE,
	STATS_MAXDAMAGE,
	STATS_SECONDARY_MINDAMAGE,
	STATS_SECONDARY_MAXDAMAGE,
	STATS_DAMAGEPERCENT,
	STATS_MANARECOVERY,
	STATS_MANARECOVERYBONUS,
	STATS_STAMINARECOVERYBONUS,
	STATS_LASTEXP,
	STATS_NEXTEXP,
	STATS_ARMORCLASS,
	STATS_ARMORCLASS_VS_MISSILE,//0x20
	STATS_ARMORCLASS_VS_HTH,//0x21
	STATS_NORMAL_DAMAGE_REDUCTION,
	STATS_MAGIC_DAMAGE_REDUCTION,
	STATS_DAMAGERESIST,
	STATS_MAGICRESIST,
	STATS_MAXMAGICRESIST,
	STATS_FIRERESIST,//0x27
	STATS_MAXFIRERESIST,
	STATS_LIGHTRESIST,//0x29
	STATS_MAXLIGHTRESIST,
	STATS_COLDRESIST,//0x2B
	STATS_MAXCOLDRESIST,
	STATS_POISONRESIST,
	STATS_MAXPOISONRESIST,
	STATS_DAMAGEAURA,
	STATS_FIREMINDAM,//0x30
	STATS_FIREMAXDAM,
	STATS_LIGHTMINDAM,
	STATS_LIGHTMAXDAM,
	STATS_MAGICMINDAM,
	STATS_MAGICMAXDAM,
	STATS_COLDMINDAM,
	STATS_COLDMAXDAM,
	STATS_COLDLENGTH,
	STATS_POISONMINDAM,
	STATS_POISONMAXDAM,
	STATS_POISONLENGTH,
	STATS_LIFEDRAINMINDAM,
	STATS_LIFEDRAINMAXDAM,
	STATS_MANADRAINMINDAM,
	STATS_MANADRAINMAXDAM,
	STATS_STAMDRAINMINDAM,//0x40
	STATS_STAMDRAINMAXDAM,
	STATS_STUNLENGTH,
	STATS_VELOCITYPERCENT,
	STATS_ATTACKRATE,
	STATS_OTHER_ANIMRATE,
	STATS_QUANTITY,
	STATS_VALUE,
	STATS_DURABILITY,
	STATS_MAXDURABILITY,
	STATS_HPREGEN,
	STATS_ITEM_MAXDURABILITY_PERCENT,
	STATS_ITEM_MAXHP_PERCENT,
	STATS_ITEM_MAXMANA_PERCENT,
	STATS_ITEM_ATTACKERTAKESDAMAGE,
	STATS_ITEM_GOLDBONUS,
	STATS_ITEM_MAGICBONUS,//0x50
	STATS_ITEM_KNOCKBACK,
	STATS_ITEM_TIMEDURATION,
	STATS_ITEM_ADDCLASSSKILLS,							//STATS_ITEM_ADDAMASKILLPOINTS
	STATS_UNSENTPARAM1,									//STATS_ITEM_ADDPALSKILLPOINTS
	STATS_ADDEXPERIENCE,								//STATS_ITEM_ADDNECSKILLPOINTS
	STATS_HEALAFTERKILL,								//STATS_ITEM_ADDSORSKILLPOINTS
	STATS_REDUCESPRICES,								//STATS_ITEM_ADDBARSKILLPOINTS
	STATS_ITEM_DOUBLEHERBDURATION,
	STATS_ITEM_LIGHTRADIUS,
	STATS_ITEM_LIGHTCOLOR,
	STATS_ITEM_REQ_PERCENT,
	STATS_LEVELREQ,										//STATS_ITEM_FASTATTACKRATE
	STATS_ITEM_FASTERATTACKRATE,
	STATS_ITEM_LEVELREQPCT,								//STATS_ITEM_FASTESTATTACKRATE,
	STATS_LASTBLOCKFRAME,								//STATS_ITEM_FASTMOVEVELOCITY,
	STATS_ITEM_FASTERMOVEVELOCITY,//0x60
	STATS_NONCLASSKILL,									//STATS_ITEM_FASTESTMOVEVELOCITY,
	STATS_STATE,										//STATS_ITEM_FASTGETHITRATE,
	STATS_ITEM_FASTERGETHITRATE,
	STATS_MONSTER_PLAYERCOUNT,							//STATS_ITEM_FASTESTGETHITRATE,
	STATS_SKILL_POISON_OVERRIDE_LENGTH,					//STATS_ITEM_FASTBLOCKRATE,
	STATS_ITEM_FASTERBLOCKRATE,
	STATS_SKILL_BYPASS_UNDEAD,							//STATS_ITEM_FASTESTBLOCKRATE,
	STATS_SKILL_BYPASS_DEMONS,							//STATS_ITEM_FASTCASTRATE,
	STATS_ITEM_FASTERCASTRATE,
	STATS_SKILL_BYPASS_BEASTS,							//STATS_ITEM_FASTESTCASTRATE,
	STATS_ITEM_SINGLESKILL,								//STATS_ITEM_SINGLESKILL1,
	STATS_ITEM_RESTINPEACE,								//STATS_ITEM_SINGLESKILL2,
	STATS_CURSE_RESISTANCE,								//STATS_ITEM_SINGLESKILL3,
	STATS_ITEM_POISONLENGTHRESIST,
	STATS_ITEM_NORMALDAMAGE,
	STATS_ITEM_HOWL,//0x70
	STATS_ITEM_STUPIDITY,
	STATS_ITEM_DAMAGETOMANA,
	STATS_ITEM_IGNORETARGETAC,
	STATS_ITEM_FRACTIONALTARGETAC,
	STATS_ITEM_PREVENTHEAL,
	STATS_ITEM_HALFFREEZEDURATION,
	STATS_ITEM_TOHIT_PERCENT,
	STATS_ITEM_DAMAGETARGETAC,
	STATS_ITEM_DEMONDAMAGE_PERCENT,
	STATS_ITEM_UNDEADDAMAGE_PERCENT,
	STATS_ITEM_DEMON_TOHIT,
	STATS_ITEM_UNDEAD_TOHIT,
	STATS_ITEM_THROWABLE,
	STATS_ITEM_ELEMSKILL,								//STATS_ITEM_FIRESKILL,
	STATS_ITEM_ALLSKILLS,
	STATS_ITEM_ATTACKERTAKESLIGHTDAMAGE,//0x80
	STATS_IRONMAIDEN_LEVEL,
	STATS_LIFETAP_LEVEL,
	STATS_THORNS_LEVEL,
	STATS_BONEARMOR,
	STATS_BONEARMORMAX,
	STATS_ITEM_FREEZE,
	STATS_ITEM_OPENWOUNDS,
	STATS_ITEM_CRUSHINGBLOW,
	STATS_ITEM_KICKDAMAGE,
	STATS_ITEM_MANAAFTERKILL,
	STATS_ITEM_HEALAFTERDEMONKILL,
	STATS_ITEM_EXTRABLOOD,
	STATS_ITEM_DEADLYSTRIKE,
	STATS_ITEM_ABSORBFIRE_PERCENT,
	STATS_ITEM_ABSORBFIRE,
	STATS_ITEM_ABSORBLIGHT_PERCENT,
	STATS_ITEM_ABSORBLIGHT,
	STATS_ITEM_ABSORBMAGIC_PERCENT,
	STATS_ITEM_ABSORBMAGIC,
	STATS_ITEM_ABSORBCOLD_PERCENT,
	STATS_ITEM_ABSORBCOLD,
	STATS_ITEM_SLOW,
	STATS_ITEM_AURA,									//STATS_ITEM_BLESSEDAIM,
	STATS_ITEM_INDESTRUCTIBLE,							//STATS_ITEM_DEFIANCE,
	STATS_ITEM_CANNOTBEFROZEN,
	STATS_ITEM_STAMINADRAINPCT,
	STATS_ITEM_REANIMATE,
	STATS_ITEM_PIERCE,
	STATS_ITEM_MAGICARROW,
	STATS_ITEM_EXPLOSIVEARROW,
	STATS_ITEM_THROW_MINDAMAGE,
	STATS_ITEM_THROW_MAXDAMAGE,
	STATS_SKILL_HANDOFATHENA,
	STATS_SKILL_STAMINAPERCENT,
	STATS_SKILL_PASSIVE_STAMINAPERCENT,
	STATS_SKILL_CONCENTRATION,
	STATS_SKILL_ENCHANT,
	STATS_SKILL_PIERCE,
	STATS_SKILL_CONVICTION,
	STATS_SKILL_CHILLINGARMOR,
	STATS_SKILL_FRENZY,
	STATS_SKILL_DECREPIFY,
	STATS_SKILL_ARMOR_PERCENT,
	STATS_ALIGNMENT,
	STATS_TARGET0,
	STATS_TARGET1,
	STATS_GOLDLOST,
	STATS_CONVERSION_LEVEL,
	STATS_CONVERSION_MAXHP,
	STATS_UNIT_DOOVERLAY,
	STATS_ATTACK_VS_MONTYPE,							//STATS_ITEM_ADDDRUSKILLPOINTS,
	STATS_DAMAGE_VS_MONTYPE,							//STATS_ITEM_ADDASSSKILLPOINTS,
	STATS_FADE,											//STATS_ITEM_ADDSKILL_SINGLE4,
	STATS_ARMOR_OVERRIDE_PERCENT,						//STATS_ITEM_ADDSKILL_SINGLE5,
	STATS_UNUSED183,									//STATS_ITEM_ADDSKILL_SINGLE6,
	STATS_UNUSED184,									//STATS_ITEM_ADDSKILL_SINGLE7,
	STATS_UNUSED185,									//STATS_ITEM_ADDSKILL_SINGLE8,
	STATS_UNUSED186,									//STATS_ITEM_ADDSKILL_SINGLE9,
	STATS_UNUSED187,									//STATS_ITEM_ADDSKILL_SINGLE10,
	STATS_ADDSKILL_TAB,									//STATS_ITEM_ADDSKILL_TAB1,
	STATS_UNUSED189,									//STATS_ITEM_ADDSKILL_TAB2,
	STATS_UNUSED190,									//STATS_ITEM_ADDSKILL_TAB3,
	STATS_UNUSED191,									//STATS_ITEM_ADDSKILL_TAB4,
	STATS_UNUSED192,									//STATS_ITEM_ADDSKILL_TAB5,
	STATS_UNUSED193,									//STATS_ITEM_ADDSKILL_TAB6,
	STATS_ITEM_NUMSOCKETS,
	STATS_ITEM_SKILLONATTACK,							//STATS_ITEM_SKILLONATTACK1,
	STATS_ITEM_SKILLONKILL,								//STATS_ITEM_SKILLONATTACK2,
	STATS_ITEM_SKILLONDEATH,							//STATS_ITEM_SKILLONATTACK3,
	STATS_ITEM_SKILLONHIT,								//STATS_ITEM_SKILLONHIT1,
	STATS_ITEM_SKILLONLEVELUP,							//STATS_ITEM_SKILLONHIT2,
	STATS_UNUSED200,									//STATS_ITEM_SKILLONHIT3,
	STATS_ITEM_SKILLONGETHIT,							//STATS_ITEM_SKILLONGETHIT1,
	STATS_UNUSED202,									//STATS_ITEM_SKILLONGETHIT2,
	STATS_UNUSED203,									//STATS_ITEM_SKILLONGETHIT3,
	STATS_ITEM_CHARGED_SKILL,							//STATS_ITEM_CHARGED_SKILL0,
	STATS_UNUSED205,									//STATS_ITEM_CHARGED_SKILL1,
	STATS_UNUSED206,									//STATS_ITEM_CHARGED_SKILL2,
	STATS_UNUSED207,									//STATS_ITEM_CHARGED_SKILL3,
	STATS_UNUSED208,									//STATS_ITEM_CHARGED_SKILL4,
	STATS_UNUSED209,									//STATS_ITEM_CHARGED_SKILL5,
	STATS_UNUSED210,									//STATS_ITEM_CHARGED_SKILL6,
	STATS_UNUSED211,									//STATS_ITEM_CHARGED_SKILL7,
	STATS_UNUSED212,									//STATS_ITEM_CHARGED_SKILL8,
	STATS_UNUSED213,									//STATS_ITEM_CHARGED_SKILL9,
	STATS_ITEM_ARMOR_PERLEVEL,
	STATS_ITEM_ARMORPERCENT_PERLEVEL,
	STATS_ITEM_HP_PERLEVEL,
	STATS_ITEM_MANA_PERLEVEL,
	STATS_ITEM_MAXDAMAGE_PERLEVEL,
	STATS_ITEM_MAXDAMAGE_PERCENT_PERLEVEL,
	STATS_ITEM_STRENGTH_PERLEVEL,
	STATS_ITEM_DEXTERITY_PERLEVEL,
	STATS_ITEM_ENERGY_PERLEVEL,
	STATS_ITEM_VITALITY_PERLEVEL,
	STATS_ITEM_TOHIT_PERLEVEL,
	STATS_ITEM_TOHITPERCENT_PERLEVEL,
	STATS_ITEM_COLD_DAMAGEMAX_PERLEVEL,
	STATS_ITEM_FIRE_DAMAGEMAX_PERLEVEL,
	STATS_ITEM_LTNG_DAMAGEMAX_PERLEVEL,
	STATS_ITEM_POIS_DAMAGEMAX_PERLEVEL,
	STATS_ITEM_RESIST_COLD_PERLEVEL,
	STATS_ITEM_RESIST_FIRE_PERLEVEL,
	STATS_ITEM_RESIST_LTNG_PERLEVEL,
	STATS_ITEM_RESIST_POIS_PERLEVEL,
	STATS_ITEM_ABSORB_COLD_PERLEVEL,
	STATS_ITEM_ABSORB_FIRE_PERLEVEL,
	STATS_ITEM_ABSORB_LTNG_PERLEVEL,
	STATS_ITEM_ABSORB_POIS_PERLEVEL,
	STATS_ITEM_THORNS_PERLEVEL,
	STATS_ITEM_FIND_GOLD_PERLEVEL,
	STATS_ITEM_FIND_MAGIC_PERLEVEL,
	STATS_ITEM_REGENSTAMINA_PERLEVEL,
	STATS_ITEM_STAMINA_PERLEVEL,
	STATS_ITEM_DAMAGE_DEMON_PERLEVEL,
	STATS_ITEM_DAMAGE_UNDEAD_PERLEVEL,
	STATS_ITEM_TOHIT_DEMON_PERLEVEL,
	STATS_ITEM_TOHIT_UNDEAD_PERLEVEL,
	STATS_ITEM_CRUSHINGBLOW_PERLEVEL,
	STATS_ITEM_OPENWOUNDS_PERLEVEL,
	STATS_ITEM_KICK_DAMAGE_PERLEVEL,
	STATS_ITEM_DEADLYSTRIKE_PERLEVEL,
	STATS_ITEM_FIND_GEMS_PERLEVEL,
	STATS_ITEM_REPLENISH_DURABILITY,
	STATS_ITEM_REPLENISH_QUANTITY,
	STATS_ITEM_EXTRA_STACK,
	STATS_ITEM_FIND_ITEM,
	STATS_ITEM_SLASH_DAMAGE,
	STATS_ITEM_SLASH_DAMAGE_PERCENT,
	STATS_ITEM_CRUSH_DAMAGE,
	STATS_ITEM_CRUSH_DAMAGE_PERCENT,
	STATS_ITEM_THRUST_DAMAGE,
	STATS_ITEM_THRUST_DAMAGE_PERCENT,
	STATS_ITEM_ABSORB_SLASH,
	STATS_ITEM_ABSORB_CRUSH,
	STATS_ITEM_ABSORB_THRUST,
	STATS_ITEM_ABSORB_SLASH_PERCENT,
	STATS_ITEM_ABSORB_CRUSH_PERCENT,
	STATS_ITEM_ABSORB_THRUST_PERCENT,
	STATS_ITEM_ARMOR_BYTIME,
	STATS_ITEM_ARMORPERCENT_BYTIME,
	STATS_ITEM_HP_BYTIME,
	STATS_ITEM_MANA_BYTIME,
	STATS_ITEM_MAXDAMAGE_BYTIME,
	STATS_ITEM_MAXDAMAGE_PERCENT_BYTIME,
	STATS_ITEM_STRENGTH_BYTIME,
	STATS_ITEM_DEXTERITY_BYTIME,
	STATS_ITEM_ENERGY_BYTIME,
	STATS_ITEM_VITALITY_BYTIME,
	STATS_ITEM_TOHIT_BYTIME,
	STATS_ITEM_TOHITPERCENT_BYTIME,
	STATS_ITEM_COLD_DAMAGEMAX_BYTIME,
	STATS_ITEM_FIRE_DAMAGEMAX_BYTIME,
	STATS_ITEM_LTNG_DAMAGEMAX_BYTIME,
	STATS_ITEM_POIS_DAMAGEMAX_BYTIME,
	STATS_ITEM_RESIST_COLD_BYTIME,
	STATS_ITEM_RESIST_FIRE_BYTIME,
	STATS_ITEM_RESIST_LTNG_BYTIME,
	STATS_ITEM_RESIST_POIS_BYTIME,
	STATS_ITEM_ABSORB_COLD_BYTIME,
	STATS_ITEM_ABSORB_FIRE_BYTIME,
	STATS_ITEM_ABSORB_LTNG_BYTIME,
	STATS_ITEM_ABSORB_POIS_BYTIME,
	STATS_ITEM_FIND_GOLD_BYTIME,
	STATS_ITEM_FIND_MAGIC_BYTIME,
	STATS_ITEM_REGENSTAMINA_BYTIME,
	STATS_ITEM_STAMINA_BYTIME,
	STATS_ITEM_DAMAGE_DEMON_BYTIME,
	STATS_ITEM_DAMAGE_UNDEAD_BYTIME,
	STATS_ITEM_TOHIT_DEMON_BYTIME,
	STATS_ITEM_TOHIT_UNDEAD_BYTIME,
	STATS_ITEM_CRUSHINGBLOW_BYTIME,
	STATS_ITEM_OPENWOUNDS_BYTIME,
	STATS_ITEM_KICK_DAMAGE_BYTIME,
	STATS_ITEM_DEADLYSTRIKE_BYTIME,
	STATS_ITEM_FIND_GEMS_BYTIME,
	STATS_ITEM_PIERCE_COLD,
	STATS_ITEM_PIERCE_FIRE,
	STATS_ITEM_PIERCE_LTNG,
	STATS_ITEM_PIERCE_POIS,
	STATS_ITEM_DAMAGE_VS_MONSTER,
	STATS_ITEM_DAMAGE_PERCENT_VS_MONSTER,
	STATS_ITEM_TOHIT_VS_MONSTER,
	STATS_ITEM_TOHIT_PERCENT_VS_MONSTER,
	STATS_ITEM_AC_VS_MONSTER,
	STATS_ITEM_AC_PERCENT_VS_MONSTER,
	STATS_FIRELENGTH,
	STATS_BURNINGMIN,
	STATS_BURNINGMAX,
	STATS_PROGRESSIVE_DAMAGE,
	STATS_PROGRESSIVE_STEAL,
	STATS_PROGRESSIVE_OTHER,
	STATS_PROGRESSIVE_FIRE,
	STATS_PROGRESSIVE_COLD,
	STATS_PROGRESSIVE_LIGHTNING,
	STATS_ITEM_EXTRA_CHARGES,
	STATS_PROGRESSIVE_TOHIT,
	STATS_POISON_COUNT,
	STATS_DAMAGE_FRAMERATE,
	STATS_PIERCE_IDX,
	STATS_PASSIVE_FIRE_MASTERY,///////////////////////// NEW FOR 1.10
	STATS_PASSIVE_LTNG_MASTERY,
	STATS_PASSIVE_COLD_MASTERY,
	STATS_PASSIVE_POUS_MASTERY,
	STATS_PASSIVE_FIRE_PIERCE,
	STATS_PASSIVE_LTNG_PIERCE,
	STATS_PASSIVE_COLD_PIERCE,
	STATS_PASSIVE_POIS_PIERCE,
	STATS_PASSIVE_CRITICAL_STRIKE,
	STATS_PASSIVE_DODGE,
	STATS_PASSIVE_AVOID,
	STATS_PASSIVE_EVADE,
	STATS_PASSIVE_WARMTH,
	STATS_PASSIVE_MASTERY_MELEE_TH,
	STATS_PASSIVE_MASTERY_MELEE_DMG,
	STATS_PASSIVE_MASTERY_MELEE_CRIT,
	STATS_PASSIVE_MASTERY_THROW_TH,
	STATS_PASSIVE_MASTERY_THROW_DMG,
	STATS_PASSIVE_MASTERY_THROW_CRIT,
	STATS_PASSIVE_WEAPONBLOCK,
	STATS_PASSIVE_SUMMON_RESIST,
	STATS_MODIFIERLIST_SKILL,
	STATS_MODIFIERLIST_LEVEL,
	STATS_LAST_SENT_HP_PCT,
	STATS_SOURCE_UNIT_TYPE,
	STATS_SOURCE_UNIT_ID,
	STATS_SHORTPARAM1,
	STATS_QUESTITEMDIFFICULTY,
	STATS_PASSIVE_MAG_MASTERY,
	STATS_PASSIVE_MAG_PIERCE
};

enum D2Mod
{
	ARMORCLASS = 0,
	ARMORCLASS_VS_MISSILE,
	ARMORCLASS_VS_HTH,
	NORMAL_DAMAGE_REDUCTION,
	NORMAL_DAMAGE_REDUCTION_PCT,
	ARMOR_PERCENT,
	MAGIC_DAMAGE_REDUCTION,
	STRENGTH,
	DEXTERITY,
	VITALITY,
	ENERGY,
	MAXMANA,
	MAXMANA_PERCENT,
	MAXHP,
	MAXHP_PERCENT,
	TOHIT,
	TOBLOCK,
	COLDMINDAM,
	COLDMAXDAM,
	COLDLENGTH,
	FIREMINDAM,
	FIREMAXDAM,
	LIGHTMINDAM,
	LIGHTMAXDAM,
	POISONMINDAM,
	POISONMAXDAM,
	POISONLENGTH,
	MINDAMAGE,
	MAXDAMAGE,
	WEAPONDAMAGE_PERCENT,
	DAMAGETOMANA,
	FIRERESIST,
	MAXFIRERESIST,
	LIGHTRESIST,
	MAXLIGHTRESIST,
	COLDRESIST,
	MAXCOLDRESIST,
	MAGICRESIST,
	MAXMAGICRESIST,
	POISONRESIST,
	MAXPOISONRESIST,
	RESISTALL,
	MAXRESISTALL,
	ASBORBFIRE_PERCENT,
	ASBORBFIRE,
	ASBORBLIGHT_PERCENT,
	ASBORBLIGHT,
	ASBORBMAGIC_PERCENT,
	ASBORBMAGIC,
	ASBORBCOLD_PERCENT,
	ASBORBCOLD,
	MAXDURABILITY,
	MAXDURABILITY_PERCENT,
	HITPOINTS_DELTA,
	ATTACKERTAKES_DAMAGE,
	FASTATTACKRATE,
	FASTERATTACKRATE,
	FASTESTATTACKRATE,
	GOLDBONUS,
	MAGICBONUS,
	KNOCKBACK,
	REGENSTAMINA_PERCENT,
	REGENMANA_PERCENT,
	BASESTAMINA,
	TIMEDURATION,
	MANASTEAL,
	LIFESTEAL,
	ADDAMASKILLPOINTS,
	ADDPALSKILLPOINTS,
	ADDNECSKILLPOINTS,
	ADDSORSKILLPOINTS,
	ADDBARSKILLPOINTS,
	DOUBLEHERBDURATION,
	LIGHTRADIUS,
	LIGHTCOLOR,
	REQ_PERCENT,
	FASTMOVEVELOCITY,
	FASTERMOVEVELOCITY,
	FASTESTMOVEVELOCITY,
	FASTGETHITRATE,
	FASTERGETHITRATE,
	FASTESTGETHITRATE,
	FASTBLOCKRATE,
	FASTERBLOCKRATE,
	FASTESTBLOCKRATE,
	FASTCASTRATE,
	FASTERCASTRATE,
	FASTESTCASTRATE,
	POISONLENGTHRESIST,
	NORMALDAMAGE,
	HOWL,
	STUPIDITY,
	IGNORETARGETAC,
	FRACTIONALTARGETAC,
	PREVENTHEAL,
	HALFFREEZEDURATION,
	TOHIT_PERCENT,
	DAMAGETARGETAC,
	DEMONDAMAGE_PERCENT,
	UNDEADDAMAGE_PERCENT,
	DEMON_TOHIT,
	UNDEAD_TOHIT,
	THROWABLE,
	FIRESKILL,
	ALLSKILLS,
	ATTACKERTAKESLIGHT_DAMAGE,
	FREEZE,
	OPENWOUNDS,
	CRUSHINGBLOW,
	KICKDAMAGE,
	MANAAFTERKILL,
	HEALAFTERDEMONKILL,
	EXTRABLOOD,
	DEADLYSTRIKE,
	SLOW,
	CANNOTBEFROZEN,
	STAMINADRAINPCT,
	REANIMATE,
	PIERCE,
	MAGICARROW,
	EXPLOSIVEARROW,
	ADDDRUSKILLPOINTS,
	ADDASSSKILLPOINTS,
	ADDSKILL,
	ADDTAB,
	ADDSKILL_PASSIVES,
	SKILL_ON_ATTACK,
	SKILL_ON_HIT,
	SKILL_ON_GETHIT,
	GEMBONUS,
	DURABILITY_OVER_TIME,
	FIRE_EFFECTS,
	LIGHTNING_EFFECTS,
	SOCKETS,
	FIRE_DAMAGE_MINMAX,
	LIGHT_DAMAGE_MINMAX,
	MAGIC_DAMAGE_MINMAX,
	COLD_DAMAGE_MINMAXLEN,
	POIS_DAMAGE_MINMAXLEN,
	THROW_DAMAGE_MINMAX,
	DAMAGE_MINMAX,
	STATS_ITEM_ARMOR_PERLEVEL_MOD,
	STATS_ITEM_ARMORPERCENT_PERLEVEL_MOD,
	STATS_ITEM_HP_PERLEVEL_MOD,
	STATS_ITEM_MANA_PERLEVEL_MOD,
	STATS_ITEM_MAXDAMAGE_PERLEVEL_MOD,
	STATS_ITEM_MAXDAMAGE_PERCENT_PERLEVEL_MOD,
	STATS_ITEM_STRENGTH_PERLEVEL_MOD,
	STATS_ITEM_DEXTERITY_PERLEVEL_MOD,
	STATS_ITEM_ENERGY_PERLEVEL_MOD,
	STATS_ITEM_VITALITY_PERLEVEL_MOD,
	STATS_ITEM_TOHIT_PERLEVEL_MOD,
	STATS_ITEM_TOHITPERCENT_PERLEVEL_MOD,
	STATS_ITEM_COLD_DAMAGEMAX_PERLEVEL_MOD,
	STATS_ITEM_FIRE_DAMAGEMAX_PERLEVEL_MOD,
	STATS_ITEM_LTNG_DAMAGEMAX_PERLEVEL_MOD,
	STATS_ITEM_POIS_DAMAGEMAX_PERLEVEL_MOD,
	STATS_ITEM_RESIST_COLD_PERLEVEL_MOD,
	STATS_ITEM_RESIST_FIRE_PERLEVEL_MOD,
	STATS_ITEM_RESIST_LTNG_PERLEVEL_MOD,
	STATS_ITEM_RESIST_POIS_PERLEVEL_MOD,
	STATS_ITEM_ABSORB_COLD_PERLEVEL_MOD,
	STATS_ITEM_ABSORB_FIRE_PERLEVEL_MOD,
	STATS_ITEM_ABSORB_LTNG_PERLEVEL_MOD,
	STATS_ITEM_ABSORB_POIS_PERLEVEL_MOD,
	STATS_ITEM_THORNS_PERLEVEL_MOD,
	STATS_ITEM_FIND_GOLD_PERLEVEL_MOD,
	STATS_ITEM_FIND_MAGIC_PERLEVEL_MOD,
	STATS_ITEM_REGENSTAMINA_PERLEVEL_MOD,
	STATS_ITEM_STAMINA_PERLEVEL_MOD,
	STATS_ITEM_DAMAGE_DEMON_PERLEVEL_MOD,
	STATS_ITEM_DAMAGE_UNDEAD_PERLEVEL_MOD,
	STATS_ITEM_TOHIT_DEMON_PERLEVEL_MOD,
	STATS_ITEM_TOHIT_UNDEAD_PERLEVEL_MOD,
	STATS_ITEM_CRUSHINGBLOW_PERLEVEL_MOD,
	STATS_ITEM_OPENWOUNDS_PERLEVEL_MOD,
	STATS_ITEM_KICK_DAMAGE_PERLEVEL_MOD,
	STATS_ITEM_DEADLYSTRIKE_PERLEVEL_MOD,
	STATS_ITEM_FIND_GEMS_PERLEVEL_MOD,
	STATS_ITEM_REPLENISH_DURABILITY_MOD,
	STATS_ITEM_REPLENISH_QUANTITY_MOD,
	STATS_ITEM_EXTRA_STACK_MOD,
	STATS_ITEM_FIND_ITEM_MOD,
	STATS_ITEM_SLASH_DAMAGE_MOD,
	STATS_ITEM_SLASH_DAMAGE_PERCENT_MOD,
	STATS_ITEM_CRUSH_DAMAGE_MOD,
	STATS_ITEM_CRUSH_DAMAGE_PERCENT_MOD,
	STATS_ITEM_THRUST_DAMAGE_MOD,
	STATS_ITEM_THRUST_DAMAGE_PERCENT_MOD,
	STATS_ITEM_ABSORB_SLASH_MOD,
	STATS_ITEM_ABSORB_CRUSH_MOD,
	STATS_ITEM_ABSORB_THRUST_MOD,
	STATS_ITEM_ABSORB_SLASH_PERCENT_MOD,
	STATS_ITEM_ABSORB_CRUSH_PERCENT_MOD,
	STATS_ITEM_ABSORB_THRUST_PERCENT_MOD,
	STATS_ITEM_ARMOR_BYTIME_MOD,
	STATS_ITEM_ARMORPERCENT_BYTIME_MOD,
	STATS_ITEM_HP_BYTIME_MOD,
	STATS_ITEM_MANA_BYTIME_MOD,
	STATS_ITEM_MAXDAMAGE_BYTIME_MOD,
	STATS_ITEM_MAXDAMAGE_PERCENT_BYTIME_MOD,
	STATS_ITEM_STRENGTH_BYTIME_MOD,
	STATS_ITEM_DEXTERITY_BYTIME_MOD,
	STATS_ITEM_ENERGY_BYTIME_MOD,
	STATS_ITEM_VITALITY_BYTIME_MOD,
	STATS_ITEM_TOHIT_BYTIME_MOD,
	STATS_ITEM_TOHITPERCENT_BYTIME_MOD,
	STATS_ITEM_COLD_DAMAGEMAX_BYTIME_MOD,
	STATS_ITEM_FIRE_DAMAGEMAX_BYTIME_MOD,
	STATS_ITEM_LTNG_DAMAGEMAX_BYTIME_MOD,
	STATS_ITEM_POIS_DAMAGEMAX_BYTIME_MOD,
	STATS_ITEM_RESIST_COLD_BYTIME_MOD,
	STATS_ITEM_RESIST_FIRE_BYTIME_MOD,
	STATS_ITEM_RESIST_LTNG_BYTIME_MOD,
	STATS_ITEM_RESIST_POIS_BYTIME_MOD,
	STATS_ITEM_ABSORB_COLD_BYTIME_MOD,
	STATS_ITEM_ABSORB_FIRE_BYTIME_MOD,
	STATS_ITEM_ABSORB_LTNG_BYTIME_MOD,
	STATS_ITEM_ABSORB_POIS_BYTIME_MOD,
	STATS_ITEM_FIND_GOLD_BYTIME_MOD,
	STATS_ITEM_FIND_MAGIC_BYTIME_MOD,
	STATS_ITEM_REGENSTAMINA_BYTIME_MOD,
	STATS_ITEM_STAMINA_BYTIME_MOD,
	STATS_ITEM_DAMAGE_DEMON_BYTIME_MOD,
	STATS_ITEM_DAMAGE_UNDEAD_BYTIME_MOD,
	STATS_ITEM_TOHIT_DEMON_BYTIME_MOD,
	STATS_ITEM_TOHIT_UNDEAD_BYTIME_MOD,
	STATS_ITEM_CRUSHINGBLOW_BYTIME_MOD,
	STATS_ITEM_OPENWOUNDS_BYTIME_MOD,
	STATS_ITEM_KICK_DAMAGE_BYTIME_MOD,
	STATS_ITEM_DEADLYSTRIKE_BYTIME_MOD,
	STATS_ITEM_FIND_GEMS_BYTIME_MOD,
	STATS_ITEM_PIERCE_COLD_MOD,
	STATS_ITEM_PIERCE_FIRE_MOD,
	STATS_ITEM_PIERCE_LTNG_MOD,
	STATS_ITEM_PIERCE_POIS_MOD,
	STATS_ITEM_DAMAGE_VS_MONSTER_MOD,
	STATS_ITEM_DAMAGE_PERCENT_VS_MONSTER_MOD,
	STATS_ITEM_TOHIT_VS_MONSTER_MOD,
	STATS_ITEM_TOHIT_PERCENT_VS_MONSTER_MOD,
	STATS_ITEM_AC_VS_MONSTER_MOD,
	STATS_ITEM_AC_PERCENT_VS_MONSTER_MOD,
	INDESTRUCTIBLE,
	STATS_ITEM_CHARGED_SKILL_MOD
};

enum D2ItemFlags
{
    ITEMFLAG_RELOAD         = 0x00000001,       // NOTE: Updates client side stats.
    ITEMFLAG_BOUGHT         = 0x00000002,
    ITEMFLAG_CURSOR         = 0x00000004,
    ITEMFLAG_IGNORE         = 0x00000008,       // NOTE: Tells the client not to reset the cursor when the update packet is received.
    ITEMFLAG_IDENTIFIED     = 0x00000010,
    ITEMFLAG_REMOVED        = 0x00000020,
    ITEMFLAG_ADDED          = 0x00000040,
    ITEMFLAG_TAKEN          = 0x00000080,
    ITEMFLAG_BROKEN         = 0x00000100,
    ITEMFLAG_RESTORED       = 0x00000200,
    ITEMFLAG_SORTED         = 0x00000400,
    ITEMFLAG_SOCKETED       = 0x00000800,
    ITEMFLAG_MONSTER        = 0x00001000,
    ITEMFLAG_NEW            = 0x00002000,
    ITEMFLAG_DISABLED       = 0x00004000,
    ITEMFLAG_HARDCORE       = 0x00008000,
    ITEMFLAG_BODYPART       = 0x00010000,
    ITEMFLAG_BEGINNER       = 0x00020000,
    ITEMFLAG_RESTRICT       = 0x00040000,       // NOTE: When this is set, ITEMFLAG_RELOAD updates are not sent.
    ITEMFLAG_SERVER         = 0x00080000,
    ITEMFLAG_100000         = 0x00100000,
    ITEMFLAG_COMPACT        = 0x00200000,
    ITEMFLAG_ETHEREAL       = 0x00400000,
    ITEMFLAG_SAVED          = 0x00800000,
    ITEMFLAG_PLAYERNAME     = 0x01000000,
    ITEMFLAG_CRUDE          = 0x02000000,
    ITEMFLAG_RUNEWORD       = 0x04000000,
    ITEMFLAG_MAGICAL        = 0x08000000,       // NOTE: ITEMFLAG_COPIED in the original game, but nothing ever tests it.
    ITEMFLAG_STAFFMODS      = 0x10000000,       // NOTE: New
    ITEMFLAG_CURSED         = 0x20000000,       // NOTE: New
    ITEMFLAG_DROW           = 0x40000000,       // NOTE: New
    ITEMFLAG_TAGGED         = 0x80000000        // NOTE: New, purpose depends on the item type we're using it with.
};

enum D2ItemTtype
{
	TYPE_NONE0 = 0,
	TYPE_NONE1,
	TYPE_SHIELD,
	TYPR_ARMOR,
	TYPE_GOLD,
	TYPE_BOW_QUIVER,
	TYPE_CROSSBOW_QUIVER,
	TYPE_PLAYER_BODY_PART,
	TYPE_HERB,
	TYPE_POTION,
	TYPE_RING,
	TYPE_ELIXIR,
	TYPE_AMULET,
	TYPE_CHARM,
	TYPE_NOT_USED14,
	TYPE_BOOTS,
	TYPE_GLOVES,
	TYPE_NOT_USED17,
	TYPE_BOOK,
	TYPE_BELT,
	TYPE_GEM,
	TYPE_TORCH,
	TYPE_SCROLL,
	TYPE_NOT_USED23,
	TYPE_SCEPTER,
	TYPE_WAND,
	TYPE_STAFF,
	TYPE_BOW,
	TYPE_AXE,
	TYPE_CLUB,
	TYPE_SWORD,
	TYPE_HAMMER,
	TYPE_KNIFE,
	TYPE_SPEAR,
	TYPE_POLEARM,
	TYPE_CROSSBOW,
	TYPE_MACE,
	TYPE_HELM,
	TYPE_MISSILE_POTION,
	TYPE_QUEST,
	TYPE_BODY_PART,
	TYPE_KEY,
	TYPE_THROWING_KNIFE,
	TYPE_THROWING_AXE,
	TYPE_JAVELIN,
	TYPE_WEAPON,
	TYPE_MELEE_WEAPON,
	TYPE_MISSILE_WEAPON,
	TYPE_THROWN_WEAPON,
	TYPE_COMBO_WEAPON,
	TYPE_ANY_ARMOR,
	TYPE_ANY_SHIELD,
	TYPE_MISCELLANEOUS,
	TYPE_SOCKET_FILLER,
	TYPE_SECOND_HAND,
	TYPE_STAVES_AND_RODS,
	TYPE_MISSILE,
	TYPE_BLUNT,
	//Expansion
	TYPE_JEWEL,
	TYPE_CLASS_SPECIFIC,
	TYPE_AMAZON_ITEM,
	TYPE_BARBARIAN_ITEM,
	TYPE_NECROMANCER_ITEM,
	TYPE_PALADIN_ITEM,
	TYPE_SORCERESS_ITEM,
	TYPE_ASSASSIN_ITEM,
	TYPE_DRUID_ITEM,
	TYPE_HAND_TO_HAND,
	TYPE_ORB,
	TYPE_VOODOO_HEADS,
	TYPE_AURIC_SHIELDS,
	TYPE_PRIMAL_HELM,
	TYPE_PELT,
	TYPE_CLOAK,
	TYPE_RUNE,
	TYPE_CIRCLET,
	TYPE_HEALING_POTION,
	TYPE_MANA_POTION,
	TYPE_REJUV_POTION,
	TYPE_STAMINA_POTION,
	TYPE_ANTIDOTE_POTION,
	TYPE_THAWING_POTION,
	TYPE_SMALL_CHARM,
	TYPE_MEDIUM_CHARM,
	TYPE_LARGE_CHARM,
	TYPE_AMAZON_BOW,
	TYPE_AMAZON_SPEAR,
	TYPE_AMAZON_JAVELIN,
	TYPE_HAND_TO_HAND2,
	TYPE_MAGIC_BOW_QUIVER,
	TYPE_MAGIC_CROSSBOW_QUIVER,
	TYPE_CHIPPED_GEM,
	TYPE_FLAWED_GEM,
	TYPE_STANDARD_GEM,
	TYPE_FLAWLESS_GEM,
	TYPE_PERFECT_GEM,
	TYPE_AMETHYST,
	TYPE_DIAMOND,
	TYPE_EMERALD,
	TYPE_RUBY,
	TYPE_SAPPHIRE,
	TYPE_TOPAZ,
	TYPE_SKULL
};

enum D2ItemQuality
{
	ITEMQUALITY_CRACKED = 1,
	ITEMQUALITY_NORMAL,
	ITEMQUALITY_SUPERIOR,
	ITEMQUALITY_MAGIC,
	ITEMQUALITY_SET,
	ITEMQUALITY_RARE,
	ITEMQUALITY_UNIQUE,
	ITEMQUALITY_CRAFTED,
	ITEMQUALITY_TEMPERED
};

enum D2UnitType
{
	UNIT_PLAYER = 0,
	UNIT_MONSTER,
	UNIT_OBJECT,
	UNIT_MISSILE,
	UNIT_ITEM,
	UNIT_ROOMTILE
};

enum D2BodyLoc
{
	LOC_HEAD = 1,
	LOC_NECK,
	LOC_TORS,
	LOC_RARM,
	LOC_LARM,
	LOC_LRIN,
	LOC_RRIN,
	LOC_BELT,
	LOC_FEET,
	LOC_GLOV,
	LOC_RALT,
	LOC_LALT
};

enum ITEMDROPFLAG
{
	// flags2
	DROPFLAG_COWDROP = 1,
	DROPFLAG_NOETHEREAL = 2,
	DROPFLAG_NOSOCKET = 8,
	DROPFLAG_PRESETSTAFFMODS = 32,

	// flags1
	DROPFLAG_ALWAYSETH = 4,
	DROPFLAG_ALWAYSSOCKET = 8,
};

// end of file ---------------------------------------------------------------
#endif